#pragma once

#include "Vector.h"
#include <vector>

#define COMMON_RESPONSE

class Primitive;

struct ManifoldPoint 
{
	Vector		contactPoint;
	Primitive*	contactID1;
	Primitive*	contactID2;
	Vector		contactNormal;
	double		impulse;
	double		t_impulse;
	float		t;
	bool		responded;
};

class ContactManifold
{
public:
	ContactManifold(void);
	~ContactManifold(void);

	void			Add(ManifoldPoint point);
	void			Assess();
	int				GetNumPoints() const;
	ManifoldPoint&	GetPoint(int index);

private:
	int				m_numOfPoints;
	std::vector<ManifoldPoint> m_points;
	
};

